<?php
/**
 * Modelo CRUD de usuários
 * @author Emanuel Melo e Renato Lenz @ PC4 Team
 */
class PC4_Crud_UsuarioArquivo extends PC4_Crud_Upload {
	
	protected $caminho, $modelo;
	
	function __construct($caminho = '', $tabela = 'usuarios') {
		parent::__construct($caminho, $tabela);
		
		$this->modelo = new PC4_Crud_Usuario($tabela);
		$this->caminho = $caminho;
	}
	
	function insere($umRegistro){
		$tipos = array("jpeg", "jpg", "gif", "png");
		$umRegistro['imagem'] = $this->trataUpload($umRegistro, 'imagem', $tipos);
//		if(is_array($retornoUpload)){
//			return array($retornoUpload[1]);
//		}
//		else{
//			$umRegistro['imagem'] = $retornoUpload;
//		}
		
		if (!empty($this->erros)) {
			return $this->erros;
		}
		else {
			return $this->modelo->insere($umRegistro);
		}
	}
		
	/**
	 * 
	 * @param array $umRegistro
	 * @param int $id
	 * @return devolve um array de erros (nomeCampo/erro) para cada campo que não passou da validação 
	 */
	function edita($umRegistro, $id) {
		if(!empty($umRegistro['apaga_arquivo'])) {
			$umRegistro['imagem'] = "";
		}
		else{
			$tipos = array("jpeg", "jpg", "gif", "png");
			$umRegistro['imagem'] = $this->trataEditaUpload($umRegistro, 'imagem', 'imagem', $id, $tipos);
			if(empty($umRegistro['imagem'])){
				unset($umRegistro['imagem']);
			}
		}
		unset($umRegistro['apaga_arquivo']);
		if (!empty($this->erros)) {
			return $this->erros;
		}
		else {
			return $this->modelo->edita($umRegistro, $id);
		}
	}
	
	function insereVarios($registros, $nome_id = 'id') {
		return $this->modelo->insereVarios($registros, $nome_id);
	}
	
	function apaga($id, $nome_id = 'id') {
		return $this->modelo->apaga($id, $nome_id);
	}
	
	function lista($pagina = 1, $limite = 30, $debug = false) {
		return $this->modelo->lista($pagina, $limite, $debug);
	}
	
	function consulta($onde, $pagina = 1, $limite = 20, $debug = false) {
		return  $this->modelo->consulta($onde, $pagina, $limite, $debug);
	}
	
	function ve($id, $nome_id = 'id', $debug = false) {
		return $this->modelo->ve($id, $nome_id, $debug);
	}
	
	function getTotalRegistros($debug = false) {
		return $this->modelo->getTotalRegistros($debug);
	}
	
	function ativaDesativa($id, $set, $nome_id = 'id') {
		return $this->modelo->ativaDesativa($id, $set, $nome_id);
	}
			
}
?>